{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn import datasets\n",
    "from sklearn import cross_validation\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 鸢尾花分类的数据 采用分层采样\n",
    "def load_data():\n",
    "    iris = datasets.load_iris()\n",
    "    return cross_validation.train_test_split(iris.data,iris.target,test_size=0.25,random_state=0, stratify=iris.target)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 测试分类决策树函数：\n",
    "def test_DecisionTreeClassifier(*data):\n",
    "    X_train,X_test,Y_train,Y_test = data\n",
    "    regr = DecisionTreeClassifier()\n",
    "    regr.fit(X_train,Y_train)\n",
    "    \n",
    "    print('【训练集成绩】Training Score:{0}'.format(regr.score(X_train,Y_train)))\n",
    "    print('【测试集成绩】Testing  Score:{0}'.format(regr.score(X_test,Y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "【训练集成绩】Training Score:1.0\n",
      "【测试集成绩】Testing  Score:0.9736842105263158\n"
     ]
    }
   ],
   "source": [
    "# 开始测试：\n",
    "X_train,X_test,Y_train,Y_test = load_data()\n",
    "test_DecisionTreeClassifier(X_train,X_test,Y_train,Y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 检验【切分质量评价准则】criterion对拟合的影响\n",
    "# 测试分类决策树函数：\n",
    "def test_DTC_Criterion(*data):\n",
    "    X_train,X_test,Y_train,Y_test = data\n",
    "    \n",
    "    criterions = ['gini','entropy']\n",
    "    for criterion in criterions :\n",
    "            regr = DecisionTreeClassifier(criterion=criterion)\n",
    "            regr.fit(X_train,Y_train)\n",
    "            print(criterion)\n",
    "            print('【训练集成绩】Training Score:{0}'.format(regr.score(X_train,Y_train)))\n",
    "            print('【测试集成绩】Testing  Score:{0}'.format(regr.score(X_test,Y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "gini\n",
      "【训练集成绩】Training Score:1.0\n",
      "【测试集成绩】Testing  Score:0.9736842105263158\n",
      "entropy\n",
      "【训练集成绩】Training Score:1.0\n",
      "【测试集成绩】Testing  Score:0.9473684210526315\n"
     ]
    }
   ],
   "source": [
    "# 开始测试：\n",
    "X_train,X_test,Y_train,Y_test = load_data()\n",
    "test_DTC_Criterion(X_train,X_test,Y_train,Y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 检验【随机划分】与【最优划分】的影响\n",
    "# 测试分类决策树函数：\n",
    "def test_DTC_splitter(*data):\n",
    "    X_train,X_test,Y_train,Y_test = data\n",
    "    \n",
    "    splitters = ['best','random']\n",
    "    \n",
    "    for splitter in splitters :\n",
    "            regr = DecisionTreeClassifier(splitter=splitter)\n",
    "            regr.fit(X_train,Y_train)\n",
    "            print(splitter)\n",
    "            print('【训练集成绩】Training Score:{0}'.format(regr.score(X_train,Y_train)))\n",
    "            print('【测试集成绩】Testing  Score:{0}'.format(regr.score(X_test,Y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "best\n",
      "【训练集成绩】Training Score:1.0\n",
      "【测试集成绩】Testing  Score:0.9736842105263158\n",
      "random\n",
      "【训练集成绩】Training Score:1.0\n",
      "【测试集成绩】Testing  Score:0.9473684210526315\n"
     ]
    }
   ],
   "source": [
    "# 开始测试：\n",
    "X_train,X_test,Y_train,Y_test = load_data()\n",
    "test_DTC_splitter(X_train,X_test,Y_train,Y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 检验决策树深度对拟合的影响：\n",
    "# 测试分类决策树函数：\n",
    "def test_DTC_depth(*data,maxdepth):\n",
    "    X_train,X_test,Y_train,Y_test = data\n",
    "    \n",
    "    depths = np.arange(1,maxdepth)\n",
    "    \n",
    "    train_score = []\n",
    "    test_score = []\n",
    "    \n",
    "    for depth in depths :\n",
    "            regr = DecisionTreeClassifier(max_depth=depth)\n",
    "            regr.fit(X_train,Y_train)\n",
    "            train_score.append(regr.score(X_train,Y_train))\n",
    "            test_score.append(regr.score(X_test,Y_test))\n",
    "    # 绘图：\n",
    "    fig = plt.figure()\n",
    "    ax = fig.add_subplot(111)\n",
    "    ax.plot(depths,train_score,label='Training Score', marker='o')\n",
    "    ax.plot(depths,test_score, label='Testing Score',marker='*')\n",
    "    ax.set_xlabel(r'maxdepth')\n",
    "    ax.set_ylabel('score')\n",
    "    ax.set_title('DecisionTreeClassifier')\n",
    "    ax.legend(framealpha=0.5, loc='best')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 开始测试：\n",
    "X_train,X_test,Y_train,Y_test = load_data()\n",
    "test_DTC_depth(X_train,X_test,Y_train,Y_test,maxdepth=20)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 多次执行测试，得到的成绩是不同的，考虑可能与数据分割有关，而且数量级太小\n",
    "# 需要后续跟进"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
